package application.messages.commands;

import java.io.Serializable;

/**
 * Commands which can be executed by user in game
 * (usually by keyboard or mouse).
 * 
 * @author Tomas Zima
 */
public enum GameCommand implements Command, Serializable
{
	PLACE_NEW_BLOCK,
	REMOVE_BLOCK,
	
	PLAYER_MOVE_LEFT,
	PLAYER_MOVE_RIGHT,
	PLAYER_MOVE_DOWN,
	PLAYER_MOVE_UP,
	PLAYER_JUMP,
	
	PLAYER_STOP_MOVE_LEFT,
	PLAYER_STOP_MOVE_RIGHT,
	
	SHOOT_LEFT,
	SHOOT_RIGHT,

	/*
	 * This is the only command, which isn't called by
	 * the user personally. It's used by high class in
	 * hierarchy, which receive command to create World
	 * from menu and haven't right access to the game.
	 */
	SYSTEM_CREATE_WORLD
}
